package com.lock.entiy;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import lombok.Data;

@Data
@TableName("product")
public class Product {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    //库存数量
    private Integer stock;
    /**
     * 当执行更新操作（如 updateById）时，拦截器会将 SQL 改写为：
     * -- 原始SQL（无乐观锁）
     * UPDATE product SET stock = stock - 1 WHERE id = 1
     *
     * -- 拦截后添加版本号条件
     * UPDATE product SET stock = stock - 1, version = version + 1 WHERE id = 1 AND version = 旧版本号
     */
    @Version  // MyBatis-Plus乐观锁版本号
    private Long version;
}
